package common;

/**
 * 通信协议定义类
 */
public class Protocol {
    // 消息类型常量
    public static final byte MSG_TYPE_HEARTBEAT = 0x01;       // 心跳包
    public static final byte MSG_TYPE_AUTH = 0x02;            // 认证请求
    public static final byte MSG_TYPE_AUTH_RESP = 0x03;       // 认证响应
    public static final byte MSG_TYPE_NEW_CONN = 0x04;        // 新连接请求
    public static final byte MSG_TYPE_DATA = 0x05;            // 数据传输
    public static final byte MSG_TYPE_CLOSE_CONN = 0x06;      // 关闭连接
    public static final byte MSG_TYPE_ERROR = 0x07;           // 错误消息

    // 协议版本
    public static final byte PROTOCOL_VERSION = 0x01;

    // 协议头部大小: 版本(1) + 类型(1) + 请求ID(4) + 数据长度(4)
    public static final int HEADER_SIZE = 10;

    // 最大数据包大小 (16MB)
    public static final int MAX_PACKET_SIZE = 16 * 1024 * 1024;

    // 心跳间隔（毫秒）
    public static final long HEARTBEAT_INTERVAL = 10_000;

    // 连接超时时间（毫秒）
    public static final long CONNECTION_TIMEOUT = 30_000;

    // 重连延迟（毫秒）
    public static final long RECONNECT_DELAY = 5_000;

    // 缓冲区大小 (8KB)
    public static final int BUFFER_SIZE = 8 * 1024;
}
